package com.example.myapplication;

import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.Spinner;

import androidx.appcompat.app.AppCompatActivity;

import com.example.myapplication.db.DBManager;
import com.github.mikephil.charting.charts.LineChart;
import com.github.mikephil.charting.data.Entry;
import com.github.mikephil.charting.data.LineData;
import com.github.mikephil.charting.data.LineDataSet;

import java.util.ArrayList;
import java.util.List;

public class lineChart_outActivity extends AppCompatActivity {
    List<Entry> list = new ArrayList<>();

    int year,month;
    String out;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.chart_outcome);
        setTitle("LineChartActivity_out");

//②findViewById方法获取到布局文件中的元素
        LineChart line = findViewById(R.id.line);
        Spinner year_spinner = findViewById(R.id.spinner_month);
        //类型的选择
        Spinner month_spinner = findViewById(R.id.spinner_year);
        //获取年月的值

        year_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
                String result = adapterView.getItemAtPosition(position).toString();
                year=Integer.parseInt(result.split("年")[0]);
                System.out.println(year);

                //④导入数据
                //其中两个数字对应的分别是 X轴Y轴
                for(int i=1;i<32;i++){
                    list.add(new Entry(i, DBManager.getSumMoneyOneDay(year,month,i,out)));
                }


//⑤实例化Dataset
                //list是你这条线的数据  "android" 是你对这条线的描述（也就是图例上的文字）
                LineDataSet lineDataSet = new LineDataSet(list, "本月每天消费情况");
                LineData lineData = new LineData(lineDataSet);
                //有多条数据则使用adddataset()方法 参数是你的DataSet
                //lineData.addDataSet(lineDataSet);
                line.setData(lineData);
            }

            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {

            }
        });

        month_spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
                String result = adapterView.getItemAtPosition(position).toString();
                month=Integer.parseInt(result.toString());
                System.out.println(month);

                //④导入数据
                //其中两个数字对应的分别是 X轴Y轴
                for(int i=1;i<32;i++){
                    list.add(new Entry(i, DBManager.getSumMoneyOneDay(year,month,i,out)));
                }


//⑤实例化Dataset
                //list是你这条线的数据  "android" 是你对这条线的描述（也就是图例上的文字）
                LineDataSet lineDataSet = new LineDataSet(list, "本月每天消费情况");
                LineData lineData = new LineData(lineDataSet);
                //有多条数据则使用adddataset()方法 参数是你的DataSet
                //lineData.addDataSet(lineDataSet);
                line.setData(lineData);


            }

            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {

            }
        });

//③line Style
        // background color
        line.setBackgroundColor(Color.WHITE);
        // disable description text
        line.getDescription().setEnabled(false);
        // enable touch gestures
        line.setTouchEnabled(true);
        // enable scaling and dragging
        line.setDragEnabled(true);
        line.setScaleEnabled(true);
        // line.setScaleXEnabled(true);
        // line.setScaleYEnabled(true);
        // force pinch zoom along both axis
        line.setPinchZoom(true);

//④导入数据
        //其中两个数字对应的分别是 X轴Y轴
        for(int i=1;i<32;i++){
            list.add(new Entry(i, DBManager.getSumMoneyOneDay(year,month,i,out)));
        }


//⑤实例化Dataset
        //list是你这条线的数据  "android" 是你对这条线的描述（也就是图例上的文字）
        LineDataSet lineDataSet = new LineDataSet(list, "本月每天消费情况");
        LineData lineData = new LineData(lineDataSet);
        //有多条数据则使用adddataset()方法 参数是你的DataSet
        //lineData.addDataSet(lineDataSet);
        line.setData(lineData);
    }

}
